package com.dsunsoft.rtu.common.entity;

/**
 * 自定义错误码<br/>
 * 统一格式为 A-BB-CC<br/>
 * A：代表错误级别，1表示系统级错误，2表示服务级错误。<br/>
 * BB：代表错误项目或者模块号，从00开始。<br/>
 * CC：具体错误编号，自增从00开始<br/>
 *
 * @author ygm
 */
public enum RestCode {
    /**
     * 成功
     */
    SUCCESS(200, "成功"),
    /**
     * 失败
     */
    FAILURE(0, "失败"),
    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),
    /**
     * 请求地址错误
     */
    NOT_FOUND(404, "请求地址错误"),
    /**
     * 未知错误,请联系管理员
     */
    ERROR(500, "未知错误,请联系管理员"),
    /*################# 系统错误 #####################*/
    /**
     * 服务请求超时
     */
    REQUEST_TIMEOUT(10000, "服务请求超时"),
    /**
     * 请求方式错误
     */
    REQUEST_METHOD_ERROR(10001, "请求方式错误"),
    /**
     * 非法请求
     */
    REQUEST_ILLEGAL(10002, "非法请求"),
    /**
     * 结果不存在
     */
    RETURN_IS_NULL(10003, "结果不存在"),
    /**
     * 参数验证错误
     */
    PARAM_IS_ERROR(10004, "参数验证错误"),
    /**
     * 参数无效
     */
    PARAM_IS_INVALID(10005, "参数无效"),
    /**
     * 参数为空
     */
    PARAM_IS_BLANK(10006, "参数为空"),
    /**
     * 参数类型错误
     */
    PARAM_TYPE_ERROR(10007, "参数类型错误"),
    /**
     * 参数缺失
     */
    PARAM_NOT_COMPLETE(10008, "参数缺失"),
    /**
     * 无访问权限
     */
    PERMISSION_NO_ACCESS(10009, "无访问权限"),
    /**
     * 服务调用异常
     */
    SERVICE_ERROR(10020, "服务调用异常"),
    /**
     * 服务暂不可用,请稍后重试
     */
    SERVICE_UNAVAILABLE(10021, "服务暂不可用,请稍后重试"),
    /**
     * 访问过于频繁,请稍后重试
     */
    SERVICE_LIMIT(10022, "访问过于频繁,请稍后重试"),
    /**
     * 服务降级,请稍后重试
     */
    SERVICE_DEGRADE(10023, "服务降级,请稍后重试"),
    /**
     * 授权规则不通过,请稍后重试
     */
    SERVICE_AUTHORITY(10024, "授权规则不通过,请稍后重试"),
    /**
     * 系统规则保护,请稍后重试
     */
    SERVICE_SYSTEM_BLOCK(10025, "系统规则保护,请稍后重试"),
    /**
     * 文件上传失败
     */
    FILE_UPLOAD_ERROR(10030, "文件上传失败,请稍后重试"),
    /**
     * 文件下传失败
     */
    FILE_DOWNLOAD_ERROR(10031, "文件下载失败,请稍后重试"),
    /**
     * 文件不存在
     */
    FILE_NO_EXIST(10032, "文件不存在"),
    /*################# 服务级错误 #####################*/
    /**
     * 用户已存在
     */
    USER_EXISTS(20000, "用户已存在"),
    /**
     * 用户不存在
     */
    USER_NOT_EXISTS(20001, "用户不存在"),
    /**
     * 账号禁止登录
     */
    USER_STATE_ENABLED(20002, "账号禁止登录"),
    /**
     * 账号已被锁定
     */
    USER_STATE_LOCK(20003, "账号已被锁定"),
    /**
     * 用户名或密码错误
     */
    USER_NAME_OR_PWD_ERROR(20009, "用户名或密码错误"),
    /**
     * token已过期,请重新登录
     */
    USER_LOGIN_EXPIRED(20010, "token已过期,请重新登录");

    /**
     * 值
     */
    private int value;
    /**
     * 消息
     */
    private String message;

    RestCode(int value, String message) {
        this.value = value;
        this.message = message;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
